package com.gimi.cloud.jimi.dto.order;

import com.gimi.cloud.jimi.dto.base.BaseDTO;

import javax.validation.constraints.NotNull;
import java.math.BigDecimal;
import java.util.Date;

/**
 * 还款计划表DTO
 */
public class ReplantDTO extends BaseDTO{
    private static final long serialVersionUID = 1L;
    /**
     * 订单主键
     */
    @NotNull(message = "订单主键不能为空",groups = {ReplantDetail.class})
    private Integer oId;
    /**
     * 还款计划ID
     */
    private String plantid;

    /**
     * 账户号
     */
    private String accountno;

    /**
     * 账期
     */
    private Integer fperiod;
    /**
     * 账户状态(A000未生效,A001正常,A002逾期,A003正常结清,A004提前结清,A005待核销,A006已核销,A007委外,A008委外结清,A014退货结清)
     */
    private String status;
    /**
     * 逾期罚金
     */
    private BigDecimal ilatepenalty;
    /**
     * 状态，结清标示（1结清，0未结清）
     */
    private String clearflag;
    /**
     * 应付租金
     */
    private BigDecimal frecel;
    /**
     * 应付履约保障金
     */
    private BigDecimal deposit;
    /**
     * 应付意外保障费
     */
    private BigDecimal premium;
    /**
     * 应付款日期
     */
    private Date fmatureday;
    /**
     * 优惠减免
     */
    private BigDecimal fexempt;
    /**
     * 实际应付,
     * 首期=应付履约保障金+应付意外保障费+应付租金
     * 其他=应付租金
     */
    private BigDecimal totalfrecel;
    /**
     * 结清时间
     */
    private Date cleardate;
    /**
     * 已支付金额
     */
    private BigDecimal freal;
    /**
     * 待支付金额 =实际应付-减免金额-已支付金额
     */
    private BigDecimal tobefrecl;


    /**
     * 提前还款额
     */
    private BigDecimal fbeforrepayment;

    /**
     * 每月还款额
     */
    private BigDecimal fmonthrepay;

    /**
     * 剩余本金
     */
    private BigDecimal fprincipalbalance;


    public interface ReplantDetail{

    }
    /**
     * 结清类型（ZCJQ：正常结清，TQJQ提前结清，YQJQ，逾期结清）
     */
    private String clearType;

    public String getStatus() {
        return status;
    }

    public void setStatus(String status) {
        this.status = status;
    }

    public BigDecimal getIlatepenalty() {
        return ilatepenalty;
    }

    public void setIlatepenalty(BigDecimal ilatepenalty) {
        this.ilatepenalty = ilatepenalty;
    }

    public String getPlantid() {
        return plantid;
    }

    public void setPlantid(String plantid) {
        this.plantid = plantid;
    }

    public String getAccountno() {
        return accountno;
    }

    public void setAccountno(String accountno) {
        this.accountno = accountno;
    }

    public Integer getFperiod() {
        return fperiod;
    }

    public void setFperiod(Integer fperiod) {
        this.fperiod = fperiod;
    }

    public String getClearflag() {
        return clearflag;
    }

    public void setClearflag(String clearflag) {
        this.clearflag = clearflag;
    }

    public BigDecimal getFrecel() {
        return frecel;
    }

    public void setFrecel(BigDecimal frecel) {
        this.frecel = frecel;
    }

    public BigDecimal getDeposit() {
        return deposit;
    }

    public void setDeposit(BigDecimal deposit) {
        this.deposit = deposit;
    }

    public BigDecimal getPremium() {
        return premium;
    }

    public void setPremium(BigDecimal premium) {
        this.premium = premium;
    }

    public Date getFmatureday() {
        return fmatureday;
    }

    public void setFmatureday(Date fmatureday) {
        this.fmatureday = fmatureday;
    }

    public BigDecimal getFexempt() {
        return fexempt;
    }

    public void setFexempt(BigDecimal fexempt) {
        this.fexempt = fexempt;
    }

    public BigDecimal getTotalfrecel() {
        return totalfrecel;
    }

    public void setTotalfrecel(BigDecimal totalfrecel) {
        this.totalfrecel = totalfrecel;
    }

    public Date getCleardate() {
        return cleardate;
    }

    public void setCleardate(Date cleardate) {
        this.cleardate = cleardate;
    }

    public BigDecimal getFreal() {
        return freal;
    }

    public void setFreal(BigDecimal freal) {
        this.freal = freal;
    }

    public BigDecimal getTobefrecl() {
        return tobefrecl;
    }

    public void setTobefrecl(BigDecimal tobefrecl) {
        this.tobefrecl = tobefrecl;
    }

    public BigDecimal getFbeforrepayment() {
        return fbeforrepayment;
    }

    public void setFbeforrepayment(BigDecimal fbeforrepayment) {
        this.fbeforrepayment = fbeforrepayment;
    }

    public BigDecimal getFmonthrepay() {
        return fmonthrepay;
    }

    public void setFmonthrepay(BigDecimal fmonthrepay) {
        this.fmonthrepay = fmonthrepay;
    }

    public BigDecimal getFprincipalbalance() {
        return fprincipalbalance;
    }

    public void setFprincipalbalance(BigDecimal fprincipalbalance) {
        this.fprincipalbalance = fprincipalbalance;
    }

    public String getClearType() {
        return clearType;
    }

    public void setClearType(String clearType) {
        this.clearType = clearType;
    }

    public Integer getoId() {
        return oId;
    }

    public void setoId(Integer oId) {
        this.oId = oId;
    }
}